1. Technical Field
The present invention relates in general to data processing systems and, in particular, to methods and systems for configuring data processing systems to accommodate various hardware components. Still more particularly, the present invention relates to a method and system for supporting adapter card configuration routines designed for an operating mode that differs from the data processing system""s default operating mode.
2. Description of the Related Art
When a general purpose data processing system such as a personal computer is started or restarted, the processing resources of the data processing system prepare the system for useful work by automatically executing a startup routine. The startup routine typically tests various hardware components of the system and then configure those hardware components so that they may be utilized by software, such as the operating system and application programs. The process of automatically configuring the hardware components at startup is also known as xe2x80x9cinitializingxe2x80x9d the hardware components. In addition, a startup routine may provide for manual of certain components; however, this document focuses on the automatic configuration process.
Startup routines are usually stored in non-volatile memory known, generally, as ROM. Such startup routines are therefore considered xe2x80x9cfirmware.xe2x80x9d Specifically, in a typical conventional personal computer, the processing resources obtain the bulk of the startup routine from an electrically erasable, programmable, read-only memory (EEPROM) module which resides on the computer""s motherboard. The startup code contained in the system EEPROM (i.e., the main startup routine) is generally designed to be flexible, in that the same main startup routine can be used to configure systems with different hardware components, including different varieties of adapter cards. (The non-volatile memory that contains the main startup routine is hereinafter simply called the system ROM.) In addition to obtaining instructions from the system ROM, however, the processing resources may also obtain configuration instructions from the adapter cards themselves.
The configuration instructions from the adapter cards are obtained through a process known as a ROM scan. In the ROM scan, the main startup routine searches the ROM (if any) on each adapter card for a configuration routine (i.e., for adapter code). Whenever such code is found, the main startup routine temporarily passes control to the adapter code. The adapter code then alters the system configuration as necessary to support the adapter in question and control is then returned to the main startup routine. This startup methodology maximizes the flexibility of the main startup routine, while facilitating support for wide variations in system hardware.
When the adapter code and the main startup routine are written to utilize the same operating mode, the above methodology works well. For example, most personal computers being manufactured today utilize a default operating mode known as xe2x80x9cIA-32 modexe2x80x9d (with xe2x80x9cIAxe2x80x9d standing for INTEL(copyright) Architecture and xe2x80x9c32xe2x80x9d indicating that 32-bit addresses are supported.) Accordingly, the main startup routines and the adapter code for such systems are designed to execute in IA-32 mode.
However, when advances in the computer arts lead to the adoption of new operating modes, a problem related to adapter code compatibility arises. For example, recent advances have led to the introduction of data processing systems that utilize a new default operating mode, known as xe2x80x9cIA-64 mode,xe2x80x9d instead of the legacy IA-32 operating mode. One difference between IA-32 mode and IA-64 mode is that the latter supports 64-bit addresses. A problem associated with adopting IA-64 mode is that the configuration code on most of the available adapter cards was designed for IA-32 mode, and such code, consequently, can not run in IA-64 mode. In addition, it is expected that adapter cards with IA-64 code will become widely available only after a significant amount of time has elapsed following the introduction of the systems that startup in IA-64 mode.
A need therefore exists for a method and system for executing adapter code in an operating mode that differs from a system""s default operating mode. A need also exists for a method and system for supporting adapter cards with legacy adapter code together with adapter cards that are configured in the new operating mode. Furthermore, such systems and methods would realize additional benefits if they also optimized the efficiency of the startup process.
According to the present invention, a method for configuring a data processing system that contains one or more first nonvolatile memories, one or more second nonvolatile memories, and processing resources that support at least first and second operating modes begins with activation of a first operating mode. One or more secondary configuration routines that utilize a second operating mode are then located within the one or more second nonvolatile memories, and a list that identifies those secondary configuration routines is stored. After the list is stored, one or more primary configuration routines which utilize the first operating mode are located within the one or more first nonvolatile memories and executed. Also, all of the secondary configuration routines that do not correspond to any of the primary configuration routines are demarcated. Thereafter, the second operating mode is activated in lieu of the first operating mode, and the demarcated secondary configuration routines are executed.
In an illustrative embodiment, the primary configuration routines are obtained from system memory, the secondary configuration routines are obtained from adapter memory, and one or more of the primary configuration routines are executed in lieu of one or more corresponding secondary configuration routines.
All objects, features, and advantages of the present invention will become apparent in the following detailed written description.